A redundant array of independent disks (RAID) array may partition data sets into stripe units (e.g., strips) allocated (e.g., in a round-robin fashion) in a stripe on disks of the RAID array. When a hard disk drive (HDD) or solid state drive (SSD) fails in a RAID array that provides redundancy (e.g. a RAID-5 array), the RAID array may be rebuilt using either a replacement or a hot spare device. The rebuild operation may be performed by locking each parity stripe of the RAID array (preventing other Read/Write commands to the array from updating the “strip” of data on each of the array members), recreating the data for the failed device, and writing the recreated data to the device being rebuilt. For RAID-5 arrays, data may be recreated by reading and XOR'ing data from each of the array members except for the device being rebuilt. Until the rebuild operation completes, the RAID array may remain unprotected against another device failure. Thus, it may be desirable for a rebuild operation to complete in as timely a manner as possible.
However, a rebuild operation may be time consuming (e.g., it may take several hours to complete) depending upon factors such as the capacity of the devices, the amount of concurrent read/write activity from the host, the speed of the devices and device interface, and the DRAM bandwidth of the RAID adapter. For example, rebuilding devices which are several terabytes (TB) in size concurrent with host read/write activity on a RAID adapter with a few gigabytes (GB) per second of DRAM bandwidth may require many hours to complete. While there was hope that the introduction of FLASH based storage devices (SSDs) would result in much faster rebuild times, a rebuild operation for an array of SSDs may be no faster than for an array of HDDs given that the bottleneck is often the bandwidth of the device interface (e.g. SAS, SATA, etc.) or the DRAM limitations of the RAID adapter. As the capacity of SSDs now look to overtake that of HDDs, improvements to the rebuild process may be needed to keep RAID levels like RAID-5 viable.